package com.waitingresult.thread;

/**
 * All right reserved,Designed By WangShuai
 *
 * @author : WangShuai
 * @version : V1.0
 * @ClassName : CasIntegerDesc
 * @Description :
 * @date : 2022/9/17 17:22
 */
public class CasIntegerDesc {

    /**
     * 以原子方式将当前值加一。
     *
     * @return 更新的值
     */
//    public final int incrementAndGet() {
//        /**
//         * this 当前需要进行加一的对象
//         * valueOffset 偏移量
//         */
//        int result = unsafe.getAndAddInt(this, valueOffset, 1);
//        return result + 1;
//    }

    //unsafe
//    public final int getAndAddInt(Object var1, long var2, int var4) {
//        int var5;
//        do {
//            调用本地方法库 public native int getIntVolatile (Object var1,long var2);
//            将var5 设置为不可指令重排，防止错误代码
//            var5 = this.getIntVolatile(var1, var2);
//
//
//            调用本地方法库 进行比较和替换并返回成功与否 public final native boolean compareAndSwapInt (Object var1,long var2, int var4,
//            int var5)
//            CAS 完成
//            Boolean result = this.compareAndSwapInt(var1, var2, var5, var5 + var4)
//        } while (!result);
//        return var5;
//    }
}
